﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;
using System.ComponentModel;

namespace Negocios
{
    [DataObject]
    public class LocalBLL
    {
        [DataObjectMethod(DataObjectMethodType.Insert)]
        public bool Insere(Local l)
        {
            try
            {
                return LocalDAL.insere(l.Nome,l.Localizacao, l.Usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao inserir entidade " + l.Nome);
            }
        }
        
        [DataObjectMethod(DataObjectMethodType.Update)]
        public bool Atualiza(Local l)
        {
            try
            {
                return LocalDAL.atualizar(l.Nome, l.Localizacao, l.Usuario, l.Codigo);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar entidade " + l.Nome);
            }
        }

        [DataObjectMethod(DataObjectMethodType.Delete)]
        public bool Remove(Local l)
        {
            try
            {
                return LocalDAL.excluir(l.Codigo);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao excluir entidade " + l.Nome);
            }
        }

        [DataObjectMethod(DataObjectMethodType.Select,false)]
        public Local consulta(int codigo)
        {
            DSMPTUDO.T_LOCALDataTable localDT = LocalDAL.consultarPorCodigo(codigo);

            if (localDT.Count == 1)
                return new Local(codigo, localDT[0].tx_nome, localDT[0].tx_localizacao, localDT[0].tx_usuario);
            else
                return null;
           
        }

        [DataObjectMethod(DataObjectMethodType.Select, true)]
        public DSMPTUDO.T_LOCALDataTable consulta()
        {
            return LocalDAL.consultarTodos();
        }

    }
}
